"""
多态:一个事物的多种体现方式
前提:使用继承
"""
# 形状 类型  面积
# 圆形 半径 面积
# 正方形 边长 面积
class Shape:
    def __init__(self,type):
        self.type = type
    def area(self):
        return 0

class Circle(Shape):
    def __init__(self, type,r):
        super().__init__(type)
        self.r=r

    def area(self):
        return 3.14*self.r**2

class Square(Shape):
    def __init__(self, type,bian):
        super().__init__(type)
        self.bian=bian

    def area(self):
        return self.bian**2

class Demo:
    # 计算各种形状的面积 # s是个Shape类型的对象
    def get_area(self,s:Shape): # 形状父类事物,可以体现为圆/正方形 s可以是Shape父类对象,可以是Shape的子类对象
        print(f"{s.type}的面积为{s.area()}")


class A:
    def __init__(self, type):
        self.type = type

    def area(self):
        return 0

d = Demo()
# shape = Shape("形状")
# circle =Circle("圆",3)
square= Square("正方形",4)
d.get_area(square)


# python 是弱类型的语言
a =A("A")
d.get_area(a)
